#!/bin/bash

# 数据库迁移脚本运行器
# 为 character_resources 表添加钱庄余额字段

echo "🚀 开始执行数据库迁移脚本"
echo "📅 执行时间: $(date '+%Y-%m-%d %H:%M:%S')"
echo ""

# 检查是否在正确的目录
if [ ! -f "package.json" ]; then
    echo "❌ 错误: 请在 nestjs-app 目录下运行此脚本"
    exit 1
fi

# 检查依赖是否安装
if [ ! -d "node_modules" ]; then
    echo "📦 安装依赖包..."
    npm install
fi

# 检查 mysql2 是否安装
if ! npm list mysql2 > /dev/null 2>&1; then
    echo "📦 安装 mysql2 依赖..."
    npm install mysql2
fi

# 检查 dotenv 是否安装
if ! npm list dotenv > /dev/null 2>&1; then
    echo "📦 安装 dotenv 依赖..."
    npm install dotenv
fi

echo "✅ 依赖检查完成"
echo ""

# 设置环境变量（如果存在 .env 文件）
if [ -f ".env" ]; then
    echo "📄 发现 .env 文件，加载环境变量..."
    export $(cat .env | grep -v '^#' | xargs)
    echo "✅ 环境变量加载完成"
else
    echo "📄 未发现 .env 文件，将使用默认配置"
fi

echo ""

# 确认执行
echo "⚠️  警告: 此操作将修改数据库结构"
echo "请确保已备份数据库"
echo ""
read -p "是否继续执行迁移? (y/N): " -n 1 -r
echo ""

if [[ ! $REPLY =~ ^[Yy]$ ]]; then
    echo "❌ 用户取消执行"
    exit 0
fi

echo ""

# 执行迁移脚本
echo "🔧 执行数据库迁移..."
node add-balance-fields-migration.js

echo ""
echo "🎯 迁移脚本执行完成"
echo "请检查上述输出确认迁移是否成功"
